﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ext.Net;
using FSS.BLL.Entities;
using FSS.BLL.Services;
using FSS.BLL;

namespace SalesManagement.Controls.List
{
    public partial class GroupForm : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        public event EventHandler SaveClick;
        private void OnSaveClick()
        {
            if (SaveClick != null)
            {
                SaveClick(this, EventArgs.Empty);
            }
        }
        public void Show()
        {
            tempID.Text = "";
            this.FormWindow.Reset();
            this.winDetails.Show();
        }
        /// <summary>
        /// Show update
        /// </summary>
        /// <param name="ID"></param>
        public void Show(int ID)
        {
            tempID.Text = ID.ToString();
            GroupEntity groupE = new GroupEntity();
            GroupService groupS = GroupService.GetInstance();
            groupE.GroupId = ID;
            groupE = groupS.LoadByPrimaryKey(groupE);
            if (groupE != null)
            {
                txtGroupName.Text = groupE.GroupName;
                txtFormula.Text = groupE.Formula;
                txtExtraFormula.Text = groupE.ExtraFormula;
                txtDescription.Text = groupE.Description;
                tempID.Text = groupE.GroupId.ToString();
            }
            this.winDetails.Show();
        }
        protected void btnSave_Click(object sender, DirectEventArgs e)
        {
            if (!checkDataInput().Equals(false))
            {
                InsertData();
                this.winDetails.Hide();
            }
            else
            return;
        }
        private void InsertData()
        {
            GroupEntity groupE = new GroupEntity();
            GroupService groupS = GroupService.GetInstance();
            if (!string.IsNullOrEmpty(txtGroupName.Text.Trim()))
            groupE.GroupName = txtGroupName.Text;
            groupE.Formula = txtFormula.Text;
            groupE.ExtraFormula = txtExtraFormula.Text;
            groupE.Description = txtDescription.Text;
            groupE.IsActive = true;
            groupE.CreatedDate = DateTime.Now;
            groupE.CreatedBy = FSSContext.Current.User.EmployeeId;            
            groupE.UpdatedDate = DateTime.Now;
            groupE.UpdatedBy = FSSContext.Current.User.EmployeeId;
            if (tempID.Text.Equals(""))
            {
                
                groupS.Insert(groupE);
            }
            else
            {
                groupE.GroupId = Int32.Parse(tempID.Text);
                groupS.Update(groupE);
            }
            OnSaveClick();
        }
        private bool checkDataInput()
        {
            string msg = "";
            if (txtGroupName.Text.Trim().Equals(""))
            {
                msg += "Tên nhóm không được để trống";
                txtGroupName.Focus();
            }
            if (txtFormula.Text.Trim().Equals(""))
            {
                msg += "<br/>Tên công thức không được để trống";
                txtFormula.Focus();
            }
            if (txtExtraFormula.Text.Trim().Equals(""))
            {
                msg += "<br/>Phụ thu không được để trống";
                txtExtraFormula.Focus();
            }
            if(!msg.Equals(""))
            {
                X.Msg.Alert("Lỗi nhập", msg + "<br/><br/>Dữ liệu nhập chưa hợp lệ<br/>Vui lòng kiểm tra lại.").Show();
                return false;
            }
            return true;
        }
    }
}